package com.camarasmactel;

import java.util.ArrayList;
import java.util.List;

import com.conexion.Utilitario;
import com.entidades.Camaraip;
import com.greendao.model.DaoMaster;
import com.greendao.model.DaoSession;
import com.greendao.model.camaragreendao;
import com.greendao.model.camaragreendaoDao;
import com.greendao.model.DaoMaster.DevOpenHelper;

import de.greenrobot.dao.Query;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListaCamara extends Activity{

	Utilitario util;
	ListView lista;
	TextView nomcamara;
	Button inicio;
	private ArrayAdapter<Camaraip> listAdapter ; 
	private ArrayAdapter<String> nombres ; 
	
	private SQLiteDatabase db;
	private DaoMaster daoMaster;
    private DaoSession daoSession;
    private camaragreendaoDao camaraDao;
	
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listacamara);
		
		DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "camaramactel-db", null);
        db = helper.getWritableDatabase();
        daoMaster = new DaoMaster(db);
        daoSession = daoMaster.newSession();
        camaraDao = daoSession.getCamaragreendaoDao();
		
        inicio = (Button) findViewById(R.id.inicioselec);
        inicio.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Utilitario uti = new Utilitario();
				if ((MenuPrincipal.nombre.toString().trim().equals("")) ||
					(MenuPrincipal.dns.toString().trim().equals("")) ||
					(MenuPrincipal.puerto.toString().trim().equals("")))
				{	
					uti.mensaje("Por favor, seleccione una cámara", ListaCamara.this);
					
				}else{	
				Intent a = new Intent(ListaCamara.this, MainActivity.class);
				startActivity(a);
				}
			}
		});
        
		nomcamara = (TextView) findViewById(R.id.quecamara);
		if (MenuPrincipal.nombre.toString().trim().equals(""))
		nomcamara.setText("No hay cámara seleccionada");
		else
		nomcamara.setText(MenuPrincipal.nombre.toString().trim());
		
		lista = (ListView) findViewById(R.id.lista);
		
		ArrayList<Camaraip> listadecam = new ArrayList<Camaraip>();
		List<camaragreendao> cam = new ArrayList<camaragreendao>();
		cam = obtenerCamaras();
		if (cam!=null){
		Camaraip camar;
		for(int i=0; i<cam.size(); i++){
			
			camar = new Camaraip(cam.get(i).getNombre().toString().trim(),
								 cam.get(i).getDns().toString().trim(),
								 cam.get(i).getPuerto().toString().trim());
			listadecam.add(camar);
		}
		
		listAdapter = new ArrayAdapter<Camaraip>(this, android.R.layout.simple_list_item_1, listadecam);  
		
		nombres = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
				
		for (int i=0; i<listAdapter.getCount(); i++){
			nombres.add(listAdapter.getItem(i).getNombre().toString().trim());
		}
		lista.setAdapter( nombres ); 
		
		lista.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				nomcamara.setText(listAdapter.getItem(arg2).getNombre().toString().trim());
				MenuPrincipal.nombre = listAdapter.getItem(arg2).getNombre().toString().trim();
				MenuPrincipal.dns = listAdapter.getItem(arg2).getDns().toString().trim();
				MenuPrincipal.puerto = listAdapter.getItem(arg2).getPuerto().toString().trim();
				
			}
		
		
		});
		}else 
			util.mensaje("No tiene cámaras configuradas", ListaCamara.this);
		
		
	}

	public List<camaragreendao> obtenerCamaras(){
		
		Query<camaragreendao> query = camaraDao.queryBuilder().build();
		List<camaragreendao> lista = query.list();
		if (lista.size()>=1){
			return lista;
		}
		else{
			return null;
		}
	
	}
	
}
